import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 支持中文
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
data = pd.read_csv('football_players_10k.csv')
print(data.head(5))
print(data.info())
print('是否有重复值：', data.duplicated().any())

print('运动员 Height 数值分布', data['Height'].describe())
plt.subplot(4, 1, 1)
data['Height'].plot(kind='hist')
print('运动员 Weight 数值分布', data['Weight'].describe())

plt.subplot(4, 1, 2)
data['Weight'].plot(kind='hist')

print('查看足球运动员左脚右脚使用情况')
print(data['Preffered_Foot'].head(10))
gr = data.groupby('Preffered_Foot')
s = gr['Preffered_Foot'].count()
print(s)
plt.subplot(4, 1, 3)
s.plot(kind='pie', autopct='%.2f')
# plt.show()
# 分析足球运动员的身高和体重是否相关
data.plot(kind='scatter', x='Height', y='Weight')
# plt.show()
data.plot(kind='scatter', x='Height', y='Rating')
# plt.show()

print('身高与身高的相关系数：', data['Height'].corr(data['Height']))
print('身高与体重的相关系数：', data['Height'].corr(data['Weight']))
print('身高与评分的相关系数：', data['Height'].corr(data['Rating']))
numeric_cols = data.select_dtypes(include=[np.number]).columns
print('分析对评分影响前 10 的变量')
print(data[numeric_cols].corr()['Rating'].sort_values(ascending=False).head(10))
